#include <iostream>
#include <vector>
#include <algorithm>
#define endl '\n'
#define int long long
#define pii pair<int, int>
using namespace std;

// 已知
int n, m;
int s[11], c[11]; // 从数据量看出来就要用dp或者搜索
double p[11];
// 未知
double ans, dp[1 << 10][1 << 14];

void input()
{
    cin >> n >> m;
    for (int i = 1; i <= n; ++i)
    {
        cin >> s[i] >> c[i] >> p[i];
        p[i] /= 100;
    }
}
double dfs(int x, int y)
{
    if (dp[x][y] > 0) return dp[x][y];
    for (int i = 0; i < n; ++i)
    {
        if ((x & (1 << i)) and y >= c[i + 1]) // 第i个题没回答而且钱足够
        {
            // 概率乘以所得就是期望
            double s1 = p[i + 1] * (dfs(x ^ (1 << i), y - c[i + 1]) + s[i + 1]); // 答对的期望加上得分
            double s2 = (1 - p[i + 1]) * (dfs(x, y - c[i + 1]));                 // 答错的期望
            dp[x][y] = max(dp[x][y], s1 + s2); //  答对答错都要算分
        }
    }
    return dp[x][y];
}

signed main()
{
    input();
    ans = dfs((1 << n) - 1, m); // 从2^n-1的状态开始搜，也就是1……111111111这样的开始
    printf("%.7lf", ans);
    return 0;
}